package com.jeln.service;

import com.jeln.po.Blog;
import com.jeln.vo.BlogQuery;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

public interface BlogService {

    //根据id查询博客
    Blog getBlog(Long id);

    //分页查询blog
    Page<Blog> listBlog(Pageable pageable, BlogQuery blog);

    //新增blog
    Blog saveBlog(Blog blog);

    //更新blog
    Blog updateBlog(Long id,Blog blog);

    //删除博客
    void deleteBlog(Long id);

    //前端页面首页展示博客
    Page<Blog> listBlog(Pageable pageable);

    //前端展示推荐博客
    List<Blog> listRecommendBlogTop(Integer size);

    //搜索查询博客
    Page<Blog> listBlog(String query,Pageable pageable);

    //在前端获取博客内容并转换成html格式（好展示）
    Blog getAndConvert(Long id);

    //根据tagId查询博客（只要博客符合一个tag就展示！）
    Page<Blog> listBlog(Long tagId, Pageable pageable);

    //博客归档，每个年份有对应的博客
    Map<String,List<Blog>> archiveBlog();

    //年份对应的博客条数
    Long countBlog();
}
